- Published on
Mobile Hacking - Bypass SSL Pinning Android apps with Frida & Objection
- Authors

- Name
- Alvin Dhiyaul H

Apa itu SSL Pinning?
SSL pinning adalah teknik keamanan yang mengharuskan aplikasi memverifikasi sertifikat server terhadap sertifikat yang telah "dipin" (disematkan) di dalam aplikasi. Tujuannya adalah untuk mencegah serangan man-in-the-middle (MitM) dengan memastikan aplikasi hanya berkomunikasi dengan server yang sah.
Alat yang Digunakan
Frida: Toolkit instrumentasi dinamis yang memungkinkan injeksi kode ke dalam aplikasi yang sedang berjalan untuk memodifikasi perilakunya tanpa mengubah kode sumber.
Objection: Toolkit eksplorasi runtime untuk aplikasi mobile yang memanfaatkan Frida untuk melakukan analisis dan manipulasi aplikasi secara dinamis.
Requirement
- Setup Android Virtual (Rooted) Read
- Install Frida CLI
- Install Frida Server
- Install Objection Tools
- Download VulnerableBankApp Lab
Install Frida CLI
pip install frida-tools
Install Objection
pip install objection
Install Frida Server In Android Emulator
Kita perlu menginstall frida server pada emulator android supaya dapat terhubung dengan frida cli yang sudah kita install sebelumnya, dan untuk melakukan instalasi frida server kita harus mengetahui architecture cpu pada android device yang kita gunakan.
Check CPU Device architecture
adb shell getprop ro.product.cpu.abilist
arm-64 
Sehingga kita dapat menggunakan frida server dengan versi frida-server-17.0.4-android-arm64.xz. Atau kita dapat menggunakan versi yang lain sesuai dengan CPU type yang kita sedang gunakan Download Frida Server.
Uncommpress frida-server-17.0.4-android-arm64.xz
Selanjutnya kita dapat mengkompresi file frida serve yang telah kita download sebelumnya.
unxz frida-server-17.0.4-android-arm64.xz

Push & Running Frida Server
Kemudian kita perlu menaruh file frida server ke direktori /data/local/tmp/ di android dan kemudian merunning nya.
$ adb root
$ adb push frida-server-17.0.4-android-arm64 /data/local/tmp/
$ adb shell "chmod 755 /data/local/tmp/frida-server-17.0.4-android-arm64"
$ adb shell "/data/local/tmp/frida-server-17.0.4-android-arm64 &"

Pada tahap ini kita telah berhasil menginstal & menjalankan frida server dan dapat di cek jika frida server sudah berjalan dengan frida CLI
frida-ps -Uai
Tetapi ketika muncul pesan error seperti ini ketika menjalankan frida server:
Unable to load SELinux policy from the kernel: Failed to open file ?/sys/fs/selinux/policy?: Permission denied
kita dapat memanfaatkan script berikut untuk disable SELinux dan kemudian auto running frida server Download Script Disable SELinux
Bypass SSL Pinnning with Objection
Setelah kita berhasil melakukan instalasi frida server selanjutnya kita dapat melakukan tahap selanjutnya yaitu bypass ssl pinning with objection, karena objection ini perlu frida server untuk dapat terkoneksi ke device android kita. Disini saya menggunakan sebuah lab aplikasi mobile yang memang sudah di setting untuk percobaan peretasan secara etis yaitu Vulnerable Bank yang dapat di download langsung dari repositori github Commando-X vuln-bank

NOTE
Video diatas adalah posisi dimana aplikasi Vulnerable bank masih terdapat proteksi SSL Pinning sehingga kita tidak dapat mengintercept traffict request yang sedang berjalan dan muncul pesan error Network Error
Kemudian untuk melakukan Bypass SSL Pinning kita perlu mengetahui Identifier/package id dari aplikasi yang akan kita Bypass SSL Pinning, kita dapat menggunakan frida CLI untuk mengetahui nya, dengan command:
frida-ps -Uai
Dari hasil identifier kita dapat mengetahui bahwasanya package name nya adalah com.vulnerablebankapp
alvin@0xOff ~ % frida-ps -Uai
PID Name Identifier
---- ----------------- ---------------------------------------
9126 Photos com.google.android.apps.photos
9742 VulnerableBankApp com.vulnerablebankapp
- Calendar com.google.android.calendar
- Camera com.android.camera2
Kemudian kita dapat menggunkan Objection untuk menjalankan aplikasi yang akan kita bypass ssl pinningnya.
objection --gadget <identifier> explore
Lalu ketika aplikasi sudah berjalan dan pada objection kita gunakan argument untuk bypass ssl pinning yaitu android sslpinning disable dan akan muncul logging pada objection bahwasanya ada beberapa function sslpinning yang telah di berhasil di bypass.
Dan selanjutnya kita dapat meng-Intercept request yang sedang berjalan menggunakan Burpsuite.

Dan kita telah berhasil melakukan Bypass SSL Pinning android mobile dengan menggunakan Frida & Objection